home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / DESK / CORE / Desk / h / Coord < prev    next >
Text File  |  1996-05-21  |  2KB  |  43 lines

  1.  
  2. #ifndef __Desk_Coord_h
  3. #define __Desk_Coord_h
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #ifndef __Desk_core_h
  8. #include "Core.h"
  9. #endif
  10. #ifndef __Desk_Wimp_h
  11. #include "Wimp.h"
  12. #endif
  13. typedef struct
  14. {
  15. Desk_wimp_rect screenrect;
  16. Desk_wimp_point scroll;
  17. } Desk_convert_block;
  18. extern Desk_bool Desk_Coord_PointInRect(const Desk_wimp_point *point, const Desk_wimp_rect *rect);
  19. extern Desk_bool Desk_Coord_RectContained(const Desk_wimp_rect *InsideRect,
  20. const Desk_wimp_rect *OutsideRect);
  21. extern Desk_bool Desk_Coord_RectsOverlap(const Desk_wimp_rect *rect1, const Desk_wimp_rect *rect2);
  22. #define Desk_Coord_RectsIntersect(r1, r2) (Desk_Coord_RectsOverlap(r1, r2) && \
  23. !Desk_Coord_RectContained(r1, r2) && \
  24. !Desk_Coord_RectContained(r2, r1))
  25. extern void Desk_Coord_WindowOrigin(Desk_wimp_point *origin, const Desk_convert_block *convert);
  26. #define Desk_Coord_XToScreen(X, C) \
  27. (((X) - (C)->scroll.x) + (C)->screenrect.min.x)
  28. #define Desk_Coord_YToScreen(Y, C) \
  29. (((Y) - (C)->scroll.y) + (C)->screenrect.max.y )
  30. extern void Desk_Coord_PointToScreen(Desk_wimp_point *point, const Desk_convert_block *convert);
  31. extern void Desk_Coord_RectToScreen(Desk_wimp_rect *rect, const Desk_convert_block *convert);
  32. #define Desk_Coord_XToWorkArea(X, C) (((X)-(C)->screenrect.min.x)+(C)->scroll.x)
  33. #define Desk_Coord_YToWorkArea(Y, C) (((Y)-(C)->screenrect.max.y)+(C)->scroll.y)
  34. extern void Desk_Coord_PointToWorkArea(Desk_wimp_point *point,
  35. const Desk_convert_block *convert);
  36. extern void Desk_Coord_RectToWorkArea(Desk_wimp_rect *rect, const Desk_convert_block *convert);
  37. extern void Desk_Coord_RectUnion(Desk_wimp_rect *dest,
  38. Desk_wimp_rect *src1, Desk_wimp_rect *src2);
  39. #ifdef __cplusplus
  40. }
  41. #endif
  42. #endif
  43.